import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;

/**
 * Fenetre de fin de partie
 */

public class PartieGagnee extends JFrame implements ActionListener{
		
	private int hauteurMenu=768;
	private int largeurMenu=1024;
	private Dimension dimensionFenetrePrincipale = new Dimension(largeurMenu, hauteurMenu);

    private boolean partieTerminee=false;  
    private boolean partieContinue=false;
    private BackgroundPanel fond;   
    private JPanel panelContinuerJouer = new JPanel();
    private JPanel panelRetourMenu = new JPanel();

    private JLayeredPane ensemble = new JLayeredPane();
	private JButton boutonContinuerJouer= new JButton(new ImageIcon("img/boutonContinuerPartie.png"));
	private JButton boutonRetourMenu= new JButton(new ImageIcon("img/boutonQuitterPartie2.png"));

	private Environnement environnement;
	private BarreDeJeu barreDeJeu;

	
/**
 	* Lancement de l'introduction du jeu et initialisation du menu principal
 	* 
 	* @param nom
 	* 				titre de la fenetre principale
 	* @param largeur
 	* 				largeur de la fenetre principale
 	* @param hauteur
 	* 				hauteur de la fenetre principale
 	*/
    	
    public PartieGagnee(Environnement _env, BarreDeJeu _barreDeJeu){
    	super();
    	this.environnement=_env;
    	this.barreDeJeu=_barreDeJeu;
        this.initialisationDuMenu();
    }


/**
 	* Dimensionne la fenetre principale, la positionne, applique le fond
 	* Creation des boutons
 	*/

	private void initialisationDuMenu() {
		
    	fond = new BackgroundPanel("img/ecranPartiegagnee.png");
		fond.setBounds(0, 0, largeurMenu, hauteurMenu);
    	ensemble.setPreferredSize(dimensionFenetrePrincipale);
		ensemble.add(fond, new Integer(2));
		
		boutonContinuerJouer.setBorderPainted(false);
		boutonContinuerJouer.addActionListener(this);
		boutonContinuerJouer.setOpaque(false);
		boutonContinuerJouer.setContentAreaFilled(false);
		panelContinuerJouer.setBounds(500, 375, 300, 300);
		panelContinuerJouer.setOpaque(false);
		panelContinuerJouer.add(boutonContinuerJouer);
		ensemble.add(panelContinuerJouer, new Integer(3));
		
		boutonRetourMenu.setBorderPainted(false);
		boutonRetourMenu.addActionListener(this);
		boutonRetourMenu.setOpaque(false);
		boutonRetourMenu.setContentAreaFilled(false);
		panelRetourMenu.setBounds(220, 450, 300, 300);
		panelRetourMenu.setOpaque(false);
		panelRetourMenu.add(boutonRetourMenu);
		ensemble.add(panelRetourMenu, new Integer(3));

		
		this.getContentPane().add(ensemble);
		this.setUndecorated(true);
		this.setResizable(false);
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.pack();
		this.setLocationRelativeTo(null);
		
	}

	/**
	 * Permet le retour au menu principal
	 */
	public void retourMenu() {
    	this.setVisible(false);
    	barreDeJeu.setVisible(false);
    	environnement.setVisible(false);    
    	Menu menu = new Menu("Le Refuge des Escargots",1024,768,false) ;		
    }

	/**
	 * Permet le retour au jeu
	 */
    public void retourJeu() {
    	this.setPartieContinue(true);
    	this.setVisible(false);
    }
    
/**
 	* Action en fonction du bouton clique
 	*/
	@Override
	public void actionPerformed(ActionEvent arg) {
		if (arg.getSource()==boutonContinuerJouer){
			this.retourJeu();
	  	}
		
		if (arg.getSource()==boutonRetourMenu){
			this.retourMenu();
	  	}
		

	}

/**
 * Permet de savoir si la partie est fini
 * @return 
 */
	public boolean isPartieTerminee() {
		return partieTerminee;
	}


	public void setPartieTerminee(boolean partieTerminee) {
		this.partieTerminee = partieTerminee;
	}

/**
 * Permet de savoir si la partie est encore en jeu
 * @return
 */
	public boolean isPartieContinue() {
		return partieContinue;
	}


	public void setPartieContinue(boolean partieContinue) {
		this.partieContinue = partieContinue;
	}
	
	    
}

